import http from 'wechat-http'

//配置基地址
http.baseURL = 'https://live-api.itheima.net'
// 请求拦截器
http.intercept.request=(config)=>{
 const token = getApp().token
//  console.log(config,111111111111);
//  如果有token 并且 请求接口不是 刷新token的接口是才携带token
  if(token&&!config.url.includes('/refreshToken')) {
    // 如果没config 里没有header 则给它赋值为空对象
    config.header =config.header || {}
    config.header.Authorization = token
  }
  return config
}
//响应拦截器 过滤掉不需要的数据
http.intercept.response =async (res)=>{
  // 当等于401的时候token失效了
  console.log(res);

  if(res.statusCode===401){
    if(res.config.url.includes('/refreshToken')){
      // 获取路由栈
      const pages = getCurrentPages()
      // 获取上级路由数据  路由传参 用户登录后返回上个页面
      const currentpage = pages[pages.length-1].route
      // 跳转登录页 
      wx.redirectTo({
        url: `/pages/login/index?returnUrl=/${currentpage}`,
      })
      return res.data
    }
    // 当refreshToken失效的时候要让用户跳转到登录页面
  // 证明token 失效 此时需要使用refreshToken
  const {code,data} = await wx.http({
    url:'/refreshToken',
    method:'post',
    // 此时请求头需要携带refreshToken
    header:{
      Authorization:getApp().refreshToken
    }
  })
  if(code !== 10000) return wx.utils.Toast()
    // 当获取成功 则给token 和refreshToken 重新赋值
  getApp().setToken(data.token,data.refreshToken)
  }
  return res.data
}
// 挂在到wx对象上
wx.http = http
// 注意挂载到app.js上